package com.dbms.parser.ast;

import com.dbms.common.Position;

/**
 * AstNode (抽象语法树节点) 是所有 AST 节点的抽象基类。
 * 它提供了一个 `position` 字段，用于记录该语法结构在原始 SQL 查询字符串中的位置（行号和列号），
 * 这对于精确地报告语法错误非常有用。
 */
// 【关键修改】添加 public 关键字，使其可以在其他包中被访问。
public abstract class AstNode {
    /**
     * 节点在原始 SQL 字符串中的位置信息。
     */
    private Position position;

    /**
     * 获取节点的位置信息。
     * @return 位置对象 (Position)
     */
    public Position getPosition() {
        return position;
    }

    /**
     * 设置节点的位置信息。
     * @param position 位置对象 (Position)
     */
    public void setPosition(Position position) {
        this.position = position;
    }
}